#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QWidget>
#include <QMenu>
#include <QAction>
#include <QCheckBox>
#include <QComboBox>
#include <QJsonDocument>
#include <QJsonObject>
#include <QFile>

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
public slots:
    void onDealAddExcel(void);//增加一行空行
    void onDealDelExcel(void);//删除一行
    void onDealInsertExcel(void);//插入一行
    void ondealMoveUpExcel(void);//向上移动一行
    void ondealMoveDownExcel(void);//向下移动一行
    void ondealCopyExcel(void);  //复制excel

    void onDealGetConfigJson(QJsonObject json);//获取json
    void onDealRun(void);
    void ondealactionOpen_Close(void);
    void OnDealActionSave(void);
private:
    void Addnewexcel(quint32 Count);
    void Copyexcel(quint32 baserow,quint32 tarrow);
    uint8_t Analysejsonfile(QString path);
    void RefleshEditTableWidget(QJsonArray array);
    void InitTableRow(int row,QJsonObject json);

    void ondealRemoverow(quint32 row);
private:
    Ui::MainWindow *ui;
    QFile *_JsonFile;
};

class MainWindowCombox : public QComboBox
{
    Q_OBJECT
public:
    MainWindowCombox(QWidget *parent = nullptr);
    QJsonObject GetJson(void);
    void SetJson(QJsonObject json);
protected:
    void contextMenuEvent(QContextMenuEvent *event); // 处理上下文菜单事件
signals:
    void sigGetConfig(QJsonObject json);
private slots:
    void onCustomAction1(void);
    void onCustomAction2(void);
private:
     QJsonObject _Json ;
};

#endif // MAINWINDOW_H
